<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>axios使用Ajax</title>
    <script crossorigin="anonymous" src="https://cdn.bootcdn.net/ajax/libs/axios/0.27.2/axios.min.js"></script>
  </head>
  <body>
    <button>GET</button>
    <button>POST</button>
    <button>AJAX</button>
    <script>
      const btns = document.querySelectorAll("button");

      //axios基本配置
      axios.defaults.baseURL = "http://127.0.0.1:8000";

      btns[0].onclick = function () {
        //GET请求
        axios
          .get("axios-server", {
            //url参数
            params: {
              ID: 12345,
            },
            //请求头信息
            headers: {
              name: "atguigu",
              age: 20,
            },
          })
          .then((value) => {
            console.log(value);
          });
        //axios是基于promise的 .then函数是异步执行的 ,先执行完上一个
        // 再执行下一个过程 返回的是一个对象,包括返回的data headers 原生的XMLhttprequest对象
      };

      //post请求 axios#post(url[,data[,config]])
      //第二个参数是请求体
      btns[1].onclick = function () {
        axios.post(
          "/axios-server",
          {
            username: "admin",
            password: "admin",
          },
          {
            // url
            params: {
              id: 100,
              vip: 7,
            },
            // 请求头参数
            headers: {
              height: 180,
              weight: 180,
            },
          }
        );
      };

      //axios通用发送Ajax方法 axios(config)
      btns[2].onclick = function(){
        axios({
          //请求方法
          method :'POST',
          url:'/axios-server',
          //url参数
          params:{
            vip:10,
            level:30
          },
          //头信息参数
          headers:{
            a:100,
            b:200
          },
          //请求体参数
          data:{
            username:'admin',
            password:'admin'
          }
        })
      }.then(response=>{
        console.log(response);
        //响应状态码
        console.log(response.status);
        //响应状态字符串
        console.log(response.statusText);
        //响应头信息
        console.log(response.headers);
        //响应体
        console.log(response.data);
        
      })
    </script>
  </body>
</html>
